// 全局配置请求根路径
let baseURL = 'http://www.itcbc.com:8080';
axios.defaults.baseURL = baseURL;


// 添加请求拦截器 -- 发请求时的统一配置
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 统一添加请求头 Authorization
  // console.log(config);
  let url = config.url;
  // if (url.index('/my/' === -1))
  if (url.includes('/my/')) {
    // 设置条件，当请求时的url包含 my，再去添加请求头(优化性能) -- 注册及登录时不会添加请求头了
    config.headers['Authorization'] = localStorage.getItem('token');
  }
  return config;
}, function (error) {
  // 请求错误时做些什么
  return Promise.reject(error);
})



// 添加响应拦截器 -- 拦截响应结果，拿到结果进行统一处理，然后再进行响应
// axios.interceptors.response.use(函数1, 函数2);
// 函数1: 处理的是成功状态(状态码是2xx,3xx)的响应
// 函数2: 处理的是失败状态(状态码是4xx,5xx)的响应
axios.interceptors.response.use(function (response) {
  // 对相应数据做点什么
  // console.log(response);  // data
  let { status, message } = response.data;
  if (status === 1) layer.msg(message);
  return response;
}, function (error) {
  // 对响应错误做点什么
  // console.log(error.response);  // data
  let { status, message } = error.response.data;
  if (status === 1 && message === '身份认证失败！') {
    layer.alert('身份认证失败，请重新登录', {
      // 如果设定了yes回调，需进行手动关闭弹层
      yes: function (index) {
        //do something
        // 移除过期的 token
        localStorage.removeItem('token');
        // 跳转回登录页
        location.href = './login.html';
        // 注: 为了防止非法进入有一闪的效果，要在index.html前面加判断
        layer.close(index); // 如果设定了yes回调，需进行手工关闭
      }
    });
  }
  else {
    // 其他错误，直接给出提示即可
    layer.msg(message);
  }
  return Promise.reject(error);
})